Immediate UI feedback for shopify app execute and shopify app bulk execute#6793
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
shopify app execute and shopify app bulk execute
Coverage report
Show new covered files 🐣
Show files with reduced coverage 🔻
Test suite run success3689 tests passing in 1431 suites. Report generated by 🧪jest coverage report action from b867383 |
This comment has been minimized.
This comment has been minimized.
4876c88 to
f689efe
Compare
adbc1ae to
103a462
Compare
jordanverasamy
left a comment
There was a problem hiding this comment.
🎩 ! Looks good and works nicely, just needs one tiny polish cleanup :)
103a462 to
b867383
Compare
|
/snapit |
|
🫰✨ Thanks @nickwesselman! Your snapshot has been published to npm. Test the snapshot by installing your package globally: npm i -g --@shopify:registry=https://registry.npmjs.org @shopify/cli@0.0.0-snapshot-20260129185510Caution After installing, validate the version by running just |
nickwesselman
left a comment
There was a problem hiding this comment.
Good from a DX POV
ryancbahan
left a comment
There was a problem hiding this comment.
I mentioned here that I think we really need a systemic solution for this, but given we don't have one now this makes sense to me.
| const version = await resolveApiVersion({adminSession, userSpecifiedVersion}) | ||
| return {adminSession, version} | ||
| }, | ||
| renderOptions: {stdout: process.stderr}, |
There was a problem hiding this comment.
This pattern seems smelly to me. I'm unclear why it's necessary to pass the process around since it's a global. I see it's being done in a few other places for bulk commands, so I won't block, but I question whether this is the right approach.

Inspired by: https://docs.google.com/document/d/1zZVFeZn2jWbPI8pS9XvMMcXvNwXHKnEQoSGYeBMHyGk/edit?tab=t.0
Resolves: https://github.com/orgs/shop/projects/208/views/34?pane=issue&itemId=3840287153&issue=shop%7Cissues-api-foundations%7C1311
Problem
Users experience a noticeable delay (~1-3 seconds) between hitting enter and seeing any output. During this time, the CLI is performing necessary async operations (authentication, API version resolution) but provides no visual feedback, making the tool feel unresponsive.
Solution
Add a
renderSingleTaskcall at the very start of each command method, with the authentication and version lookup being the task it tracks. The message it shows isAuthenticating...There is still some lag at the beginning. Eliminating this lag entirely would require adding feedback to all Shopify CLI commands at the framework level, which is out of scope for this change.
Tophatting
Before:
Screen Recording 2026-01-22 at 5.41.18 PM.mov (uploaded via Graphite)
After:
Screen Recording 2026-01-28 at 12.57.18 PM.mov (uploaded via Graphite)
NOTE: IMPLEMENTATION HAS CHANGED UPON REVIEW
Check here for more details